Installation of software updates on a computing device can oftentimes be problematic due to the bandwidth available to transmit the software update to the computing device, and the computing power of the computing device itself. Generally, when software updates are installed on computing devices, the older version of the software is first uninstalled. In other words the old version of the software is completely deleted from the computing device, prior to the new version of the software being installed.
For many computing devices, including mobile and/or wireless computing devices, this situation can be problematic due to the enormous amount of data which may then have to be transmitted to, and processed by the computing device. Indeed, in many instances, there may be a limited amount of bandwidth available for transmitting the new version of the software to the computing device. For example, in wireless communication devices, the wireless transmission of data to implement a software update may involve sending hundreds of megabytes of data over a wireless network. However many wireless networks have limited data transmission rates and the transfer of the data can be a time-consuming process. Furthermore, under some business models, the user of the wireless communication device may be charged on a per volume rate for receipt of data, for example a certain fee per megabyte of data, and the receipt of the software update can prove to be expensive.
Even in scenarios where the new software is transmitted over a non-wireless network, the bandwidth of the non-wireless network may still be limited. For example, if a computing device is receiving a software update over the PSTN via a modem, the download of the software update may take hours. This includes scenarios where a mobile computing device is receiving a software update during a synchronization process via another computing device, such as a personal computer, which is receiving the software update from a limited bandwidth network.
In addition, the computing power of a mobile computing device may be limited, and processing the uninstallation of the old software, and the installation of the new software may prove to be a time consuming process.
Furthermore, in some instances, the new software may not be compatible with the current state of the computing device. In these instances, the installation of the update may result in the computing device becoming non-functional.